package br.com.mftc.efitness.basicas;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Version;

@MappedSuperclass
public abstract class ObjetoGeral implements Serializable {

	private static final long serialVersionUID = 3183611230240011979L;

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private Long codigo;

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "data_de_criacao", nullable = false)
	private Date dataDeCriacao;

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "data_de_ultima_atualizacao", nullable = false)
	private Date dataDeUltimaAtualizacao;

	@Column(name = "status_ativacao", nullable = false)
	private Boolean statusAtivacao;
	
	@Version
	private Integer versao;

	public ObjetoGeral() {
		statusAtivacao = true;
	}

	public Long getCodigo() {
		return codigo;
	}

	public void setCodigo(Long codigo) {
		this.codigo = codigo;
	}

	public Date getDataDeCriacao() {
		return dataDeCriacao;
	}

	public void setDataDeCriacao(Date dataDeCriacao) {
		this.dataDeCriacao = dataDeCriacao;
	}

	public Date getDataDeUltimaAtualizacao() {
		return dataDeUltimaAtualizacao;
	}

	public void setDataDeUltimaAtualizacao(Date dataDeUltimaAtualizacao) {
		this.dataDeUltimaAtualizacao = dataDeUltimaAtualizacao;
	}

	public Boolean getStatusAtivacao() {
		return statusAtivacao;
	}

	public void setStatusAtivacao(Boolean statusAtivacao) {
		this.statusAtivacao = statusAtivacao;
	}

	public Integer getVersao() {
		return versao;
	}

	public void setVersao(Integer versao) {
		this.versao = versao;
	}

}
